import { request } from '@/utils/request.util';
import type { Res, ResNull } from '@/types/common';
import type { Root, DeptListRoot } from '@/types/root';
import type { TemplateGroup, QueryData } from '@/types/formwork/index';

/**
 *
 * 查询模板组列表
 */
export const getTemplateGroupList = (params: QueryData) =>
  request.get<Res<TemplateGroup[]>>('/template/getTemplateGroupList', {
    params,
  });

/**
 *
 * 添加模板组
 */
export const addTemplateGroup = (data: QueryData) =>
  request.post<ResNull>('/template/addGroup', data);

// 查询模板组下拉框列表
export const getGroupSelectList = (params: QueryData) =>
  request.get<Res<any>>('/template/getGroupSelectList', { params });

/**
 * 添加病历模板
 * @param data 模板数据
 */
export const addTemplateMedical = (data: any) =>
  request.post<ResNull>('/template/addTemplateMedical', data);

/**
 * 模板组
 * @param data 模板数据
 */
export const addTemplate = (data: any) =>
  request.post<Res<DeptListRoot>>('/template/addTemplate', data);


/** * 查询模板列表（用于刷新）
 * @param params 查询参数
 */
export const getTemplateList = (params: any) =>
  request.get<Res<any>>('/template/getTemplateList', { params });

/**
 * 删除模板
 * @param templateId 模板ID
 * */
export const deleteTemplate = (templateId: number) =>
  request.post<ResNull>(`/template/deleteTemplate/${templateId}`);

/**
 * 更新模板
 * @param data 模板数据
 */
export const updateTemplate = (data: any) =>
  request.post<ResNull>('/template/updateTemplateMedical', data);
/**
 * 查询模板详情
 * @param templateId 模板ID
 */
export const getTemplateMedicalDetail = (params: QueryData) =>
  request.get<Res<Root>>(`/template/getTemplateMedicalDetail`, { params });

/**
 * 编辑模板组
 */
export const editTemplateGroup = (params: QueryData) =>
  request.post<ResNull>('/template/updateGroup', params);

/**
 * 删除模板组
 */
export const deleteTemplateGroup = (params: QueryData) =>
  request.post<ResNull>(`/template/deleteGroup`, params);

/***
 * 移动模板到其他目录
 */
export const moveTemplate = (data: any) =>
  request.post<ResNull>('/template/moveTemplate', data);

/**
 * 删除模板
 */
export const deleteTemplateById = (data: any) =>
  request.post<ResNull>(`/template/deleteTemplate`,data);

/**
 * 共享模板
 */
export const shareTemplate = (data: any) =>
  request.post<ResNull>('/template/shareTemplate', data);

/**
 * 取消共享
 */
export const cancelShareTemplate = (data: any) =>
  request.post<ResNull>('/template/unshareTemplate', data);

/**
 * 拉取模板到个人目录
 */
export const pullTemplate = (data: any) =>
  request.post<ResNull>('/template/fetchTemplate', data);

/**
 * 
 * 复制模板
 */
export const copyTemplate = (data: any) =>
  request.post<ResNull>('/template/copyTemplate', data);

/**
 * 查询收费项目列表-模板和病历选择项目用
 */
export const getFeeStandardList = (params: any) =>
  request.get<Res<any>>('/project/fee/getFeeStandardList',{
    params,
  });

/**
 * 添加查验模板
 */
export const addTemplateInspection = (data: any) =>
  request.post<ResNull>('/template/addTemplateExam', data);

/**
 * 
 * 编辑查验模板
 */
export const updateTemplateInspection = (data: any) =>
  request.post<ResNull>('/template/updateTemplateExam', data);

/**
 * 
 * 查询查验模板详情
 */
export const getTemplateInspectionDetail = (params: any) =>
  request.get<Res<Root>>(`/template/getTemplateExamDetail`, { params });

/**
 * 
 * 查询处方模板详情
 */
export const getTemplatePrescriptionDetail = (params: any) =>
  request.get<Res<Root>>(`/template/getTemplateRxDetail`, { params });

/**
 * 
 * 添加处方模板
 */
export const addTemplatePrescription = (data: any) =>
  request.post<ResNull>('/template/addTemplateRx', data);

/**
 * 
 * 编辑处方模板
 */
export const updateTemplatePrescription = (data: any) =>
  request.post<ResNull>('/template/updateTemplateRx', data);

/**
 * 
 * 查询药品列表---模板和门诊选药品用
 */
export const getDrugRxList = (params: any) =>
  request.get<Res<any>>('/drug/profile/getDrugRxList', {
    params,
  });

/**
 * 
 * 获取穴位树列表
 */
export const getAcupointTree = (name: string) =>
  request.get<Res<any>>('/config/dict/getAcupointTreeList?acupointText='+ name);


/**
 * 
 * 门诊：根据穴位名查询穴位列表
 */
export const getAcupointByName = (params: any) =>
  request.get<Res<any>>('/config/dict/getAcupointListByText', { params });